#ifndef BITS32SEQUENCE_H_
#define BITS32SEQUENCE_H_

#include <cstdlib>
#include <iostream>

using namespace std;

#include "../exception/BadArgumentException.h"

using namespace ::miniprojeto::excpetion;

#include "BitsSequence.h"

namespace miniprojeto {
namespace util {

class Bits32Sequence : BitsSequence{
protected:
	unsigned int sequence;
public:
	Bits32Sequence(unsigned int sequence=0);
	virtual void printBin(int group=0);
	virtual void printHex(int group=0);
	virtual void printDec();
	virtual void deslocLeft(int n=1);
	virtual void deslocRight(int n=1);
	virtual bool isBitN(int n, BitValue value=ONE);
	virtual void setBitN(int n, BitValue value=ONE);
	virtual void clrBitN(int n);
	virtual void clrSequence();
	unsigned int getSequence();
	void binaryAnd(Bits32Sequence* s);
	void binaryAnd(unsigned int i);
	void binaryOr(Bits32Sequence* s);
	void binaryOr(unsigned int i);
	void binaryXor(Bits32Sequence* s);
	void binaryXor(unsigned int i);
	virtual void binaryNot();
};

}
}

#endif /*BITS32SEQUENCE_H_*/